{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-easyshare",
      "artifactVersion": "8.10",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "easyshare",
          "org.nuxeo.diff.content",
          "org.nuxeo.diff.core",
          "org.nuxeo.diff.jsf",
          "org.nuxeo.drive.core",
          "org.nuxeo.drive.elasticsearch",
          "org.nuxeo.drive.jsf",
          "org.nuxeo.drive.operations",
          "org.nuxeo.web.ui.drive"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm",
        "id": "grp:org.nuxeo.ecm",
        "name": "org.nuxeo.ecm",
        "parentIds": [],
        "readmes": [],
        "version": "8.10"
      },
      "bundleId": "easyshare",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/org.nuxeo.easyshare.auth.contrib/Contributions/org.nuxeo.easyshare.auth.contrib--actions",
              "id": "org.nuxeo.easyshare.auth.contrib--actions",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n  <action accessKey=\"k\" icon=\"/icons/contextual_menu/share.png\" id=\"showEasyShareURL\" label=\"label.eshare.permalink\" order=\"20\" type=\"fancybox\">\n   <category>DOCUMENT_UPPER_ACTION</category>\n   <filter id=\"easyShareFolderFilter\">\n    <rule grant=\"true\">\n     <type>EasyShareFolder</type>\n    </rule>\n   </filter>\n   <properties>\n    <property name=\"include\">/incl/easyshare_url_box.xhtml</property>\n    <property name=\"ajaxSupport\">true</property>\n   </properties>\n  </action>\n\n  <action accessKey=\"k\" icon=\"/icons/contextual_menu/share.png\" id=\"permalinkAction\" label=\"label.permalink\" order=\"20\" type=\"fancybox\">\n   <category>DOCUMENT_UPPER_ACTION</category>\n   <filter id=\"easySharePermalinkFilter\">\n    <rule grant=\"false\">\n     <type>EasyShareFolder</type>\n    </rule>\n   </filter>\n   <properties>\n    <property name=\"include\">/incl/permalink_box.xhtml</property>\n    <property name=\"ajaxSupport\">true</property>\n   </properties>\n  </action>\n\n </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--openUrl",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/org.nuxeo.easyshare.auth.contrib/Contributions/org.nuxeo.easyshare.auth.contrib--openUrl",
              "id": "org.nuxeo.easyshare.auth.contrib--openUrl",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"openUrl\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n  <openUrl name=\"EasyShare\">\n   <grantPattern>/nuxeo/site/easyshare/.*</grantPattern>\n  </openUrl>\n  <openUrl name=\"EasyShareSkins\">\n   <grantPattern>/nuxeo/site/skin/easyshare/.*</grantPattern>\n  </openUrl>\n  <openUrl name=\"EasyShareCss\">\n   <grantPattern>/nuxeo/site/skin/easyshare/css/.*</grantPattern>\n  </openUrl>\n  <openUrl name=\"EasyShareImages\">\n   <grantPattern>/nuxeo/site/skin/easyshare/image/.*</grantPattern>\n  </openUrl>\n </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.query.api.PageProviderService--providers",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/org.nuxeo.easyshare.auth.contrib/Contributions/org.nuxeo.easyshare.auth.contrib--providers",
              "id": "org.nuxeo.easyshare.auth.contrib--providers",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.query.api.PageProviderService",
                "name": "org.nuxeo.ecm.platform.query.api.PageProviderService",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"providers\" target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\">\n    <coreQueryPageProvider name=\"EASYSHARE_FOLDER_CONTENT_PP\">\n      <pattern>\n      <!-- Note: we want proxies.\n       Parameter is the EasyFolder id -->\n        SELECT * FROM Document WHERE ecm:parentId = ? AND ecm:isVersion = 0 AND\n        ecm:isCheckedInVersion = 0 AND ecm:mixinType != 'HiddenInNavigation'\n        AND ecm:currentLifeCycleState != 'deleted'\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:title\"/>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </coreQueryPageProvider>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--sanitizer",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/org.nuxeo.easyshare.auth.contrib/Contributions/org.nuxeo.easyshare.auth.contrib--sanitizer",
              "id": "org.nuxeo.easyshare.auth.contrib--sanitizer",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
                "name": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"sanitizer\" target=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\">\n    <sanitizer name=\"easyshare\">\n      <field>easysharefolder:shareComment</field>\n    </sanitizer>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/org.nuxeo.easyshare.auth.contrib",
          "name": "org.nuxeo.easyshare.auth.contrib",
          "requirements": [],
          "services": [],
          "version": "8.10",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.easyshare.auth.contrib\">\n\n <extension point=\"openUrl\"\n  target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n  <openUrl name=\"EasyShare\">\n   <grantPattern>/nuxeo/site/easyshare/.*</grantPattern>\n  </openUrl>\n  <openUrl name=\"EasyShareSkins\">\n   <grantPattern>/nuxeo/site/skin/easyshare/.*</grantPattern>\n  </openUrl>\n  <openUrl name=\"EasyShareCss\">\n   <grantPattern>/nuxeo/site/skin/easyshare/css/.*</grantPattern>\n  </openUrl>\n  <openUrl name=\"EasyShareImages\">\n   <grantPattern>/nuxeo/site/skin/easyshare/image/.*</grantPattern>\n  </openUrl>\n </extension>\n\n <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n  point=\"actions\">\n\n  <action id=\"showEasyShareURL\" order=\"20\" label=\"label.eshare.permalink\" type=\"fancybox\"\n          icon=\"/icons/contextual_menu/share.png\" accessKey=\"k\">\n   <category>DOCUMENT_UPPER_ACTION</category>\n   <filter id=\"easyShareFolderFilter\">\n    <rule grant=\"true\">\n     <type>EasyShareFolder</type>\n    </rule>\n   </filter>\n   <properties>\n    <property name=\"include\">/incl/easyshare_url_box.xhtml</property>\n    <property name=\"ajaxSupport\">true</property>\n   </properties>\n  </action>\n\n  <action id=\"permalinkAction\" order=\"20\" label=\"label.permalink\" type=\"fancybox\"\n          icon=\"/icons/contextual_menu/share.png\" accessKey=\"k\">\n   <category>DOCUMENT_UPPER_ACTION</category>\n   <filter id=\"easySharePermalinkFilter\">\n    <rule grant=\"false\">\n     <type>EasyShareFolder</type>\n    </rule>\n   </filter>\n   <properties>\n    <property name=\"include\">/incl/permalink_box.xhtml</property>\n    <property name=\"ajaxSupport\">true</property>\n   </properties>\n  </action>\n\n </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\" point=\"providers\">\n    <coreQueryPageProvider name=\"EASYSHARE_FOLDER_CONTENT_PP\">\n      <pattern>\n      <!-- Note: we want proxies.\n       Parameter is the EasyFolder id -->\n        SELECT * FROM Document WHERE ecm:parentId = ? AND ecm:isVersion = 0 AND\n        ecm:isCheckedInVersion = 0 AND ecm:mixinType != 'HiddenInNavigation'\n        AND ecm:currentLifeCycleState != 'deleted'\n      </pattern>\n      <sort column=\"dc:title\" ascending=\"true\" />\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </coreQueryPageProvider>\n\n  </extension>\n\n  <extension point=\"sanitizer\" target=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\">\n    <sanitizer name=\"easyshare\">\n      <field>easysharefolder:shareComment</field>\n    </sanitizer>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/easyshare-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.types.TypeService--types",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/studio.extensions.easyshare/Contributions/studio.extensions.easyshare--types",
              "id": "studio.extensions.easyshare--types",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.types.TypeService",
                "name": "org.nuxeo.ecm.platform.types.TypeService",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"types\" target=\"org.nuxeo.ecm.platform.types.TypeService\">\n    <type id=\"EasyShareFolder\">\n      <label>EasyShareFolder</label>\n      <category>Collaborative</category>\n      <icon>/img/easyshare.png</icon>\n      <bigIcon>/img/easyshare_100.png</bigIcon>\n      <description>EasyShareFolder.description</description>\n      <default-view>view_documents</default-view>\n      <layouts mode=\"create\">\n        <layout>layout@EasyShareFolder-edit</layout>\n      </layouts>\n      <layouts mode=\"edit\">\n        <layout>layout@EasyShareFolder-edit</layout>\n      </layouts>\n      <layouts mode=\"view\">\n        <layout>layout@EasyShareFolder-view</layout>\n      </layouts>\n      <layouts mode=\"header\">\n        <layout>layout@EasyShareFolder-header</layout>\n      </layouts>\n      <contentViews category=\"content\">\n        <contentView showInExportView=\"false\">document_content</contentView>\n      </contentViews>\n      <contentViews category=\"trash_content\">\n        <contentView showInExportView=\"false\">document_trash_content</contentView>\n      </contentViews>\n    </type>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/studio.extensions.easyshare/Contributions/studio.extensions.easyshare--doctype",
              "id": "studio.extensions.easyshare--doctype",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <doctype extends=\"Folder\" name=\"EasyShareFolder\">\n      <facet name=\"Collection\"/>\n      <facet name=\"NotCollectionMember\"/>\n      <schema name=\"dublincore\"/>\n      <schema name=\"common\"/>\n      <schema name=\"easysharefolder\"/>\n      <schema name=\"uid\"/>\n    </doctype>\n    <doctype append=\"true\" name=\"Folder\">\n      <subtypes>\n        <type>EasyShareFolder</type>\n      </subtypes>\n    </doctype>\n    <doctype append=\"true\" name=\"Workspace\">\n      <subtypes>\n        <type>EasyShareFolder</type>\n      </subtypes>\n    </doctype>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/studio.extensions.easyshare/Contributions/studio.extensions.easyshare--actions",
              "id": "studio.extensions.easyshare--actions",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n    <action id=\"TAB_CONTENT\">\n      <filter-id>denyForEasyShareFolder</filter-id>\n    </action>\n    <action id=\"TAB_VIEW\">\n      <filter-id>denyForEasyShareFolder</filter-id>\n    </action>\n    <action id=\"TAB_RELATIONS\">\n      <filter-id>denyForEasyShareFolder</filter-id>\n    </action>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ec.notification.service.NotificationService--notifications",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/studio.extensions.easyshare/Contributions/studio.extensions.easyshare--notifications",
              "id": "studio.extensions.easyshare--notifications",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ec.notification.service.NotificationService",
                "name": "org.nuxeo.ecm.platform.ec.notification.service.NotificationService",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"notifications\" target=\"org.nuxeo.ecm.platform.ec.notification.service.NotificationService\">\n    <notification autoSubscribed=\"true\" availableIn=\"Workspace\" channel=\"email\" enabled=\"true\" name=\"easyShareDownload\" subject=\"EasyShare download notification\" subjectTemplate=\"easyShareDownloadSubject\" template=\"easyShareDownload\">\n      <event name=\"easyShareDownload\"/>\n    </notification>\n    <notification autoSubscribed=\"true\" availableIn=\"Workspace\" channel=\"email\" enabled=\"true\" name=\"easyShareExpired\" subject=\"EasyShare expired notification\" subjectTemplate=\"easyShareExpiredSubject\" template=\"easyShareExpired\">\n      <event name=\"easyShareExpired\"/>\n    </notification>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/studio.extensions.easyshare/Contributions/studio.extensions.easyshare--schema",
              "id": "studio.extensions.easyshare--schema",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"easysharefolder\" prefix=\"eshare\" src=\"data/schemas/easysharefolder.xsd\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--chains",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/studio.extensions.easyshare/Contributions/studio.extensions.easyshare--chains",
              "id": "studio.extensions.easyshare--chains",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"chains\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <chain id=\"addToAShareDocument\">\n      <operation id=\"Seam.GetCurrentDocument\"/>\n      <operation id=\"Context.SetInputAsVar\">\n        <param name=\"name\" type=\"string\">shareDocument</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param name=\"name\" type=\"string\">shareDocumentPath</param>\n        <param name=\"value\" type=\"object\">expr:Document.path</param>\n      </operation>\n      <operation id=\"Seam.FetchFromWorklist\"/>\n      <operation id=\"CreateProxyLive\">\n        <param name=\"Destination Path\" type=\"string\">expr:shareDocumentPath</param>\n      </operation>\n      <operation id=\"Context.RestoreDocumentInput\">\n        <param name=\"name\" type=\"string\">shareDocument</param>\n      </operation>\n      <operation id=\"Audit.Log\">\n        <param name=\"event\" type=\"string\">Documents added to the share</param>\n        <param name=\"category\" type=\"string\">EasyShareFolderCategory</param>\n        <param name=\"comment\" type=\"string\">expr:Some documents were added to the share folder @{Document[\"dc:title\"]}</param>\n      </operation>\n      <operation id=\"Seam.Refresh\"/>\n      <operation id=\"Seam.AddInfoMessage\">\n        <param name=\"message\" type=\"string\">Added</param>\n      </operation>\n    </chain>\n    <chain id=\"navToParent\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Document.GetParent\"/>\n      <operation id=\"Seam.NavigateTo\"/>\n    </chain>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "Widget types declared in studio\n",
              "documentationHtml": "<p>\nWidget types declared in studio</p>",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--widgettypes",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/studio.extensions.easyshare/Contributions/studio.extensions.easyshare--widgettypes",
              "id": "studio.extensions.easyshare--widgettypes",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"widgettypes\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n\n    <documentation>Widget types declared in studio</documentation>\n\n\n    <widgetType name=\"studio_header\">\n\n      <configuration>\n\n        <title>Header</title>\n\n        <description>\n          The header widget just displays the widget label.\n        </description>\n\n        <supportedModes>\n\n          <mode>edit</mode>\n\n          <mode>view</mode>\n\n        </supportedModes>\n\n        <fields>\n\n          <list>false</list>\n\n          <complex>false</complex>\n\n          <supportedTypes/>\n\n          <defaultTypes/>\n\n        </fields>\n\n        <handlingLabels>true</handlingLabels>\n\n        <categories>\n\n          <category>document</category>\n\n          <category>studio</category>\n\n        </categories>\n\n        <properties>\n\n          <layouts mode=\"any\">\n\n            <layout name=\"studio_header_widget_type_properties_any\">\n\n              <rows>\n\n                <row>\n\n                  <widget>styleClass</widget>\n\n                </row>\n\n                <row>\n\n                  <widget>style</widget>\n\n                </row>\n\n              </rows>\n\n              <widget name=\"styleClass\" type=\"text\">\n\n                <labels>\n\n                  <label mode=\"any\">Style class</label>\n\n                </labels>\n\n                <fields>\n\n                  <field>styleClass</field>\n\n                </fields>\n\n              </widget>\n\n              <widget name=\"style\" type=\"text\">\n\n                <labels>\n\n                  <label mode=\"any\">Style</label>\n\n                </labels>\n\n                <fields>\n\n                  <field>style</field>\n\n                </fields>\n\n              </widget>\n\n            </layout>\n\n          </layouts>\n\n        </properties>\n\n      </configuration>\n\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n\n      <property name=\"template\">\n        /widgets/studio_header_widget.xhtml\n      </property>\n\n    </widgetType>\n\n\n    <widgetType name=\"filesList\">\n\n      <configuration>\n\n        <title>Files</title>\n\n        <description>\n\n          <p>\n            The Files displays an editable list of files, using javascript to\n            keep the uploaded file path when adding several files in a row.\n          </p>\n\n          <p>Items are defined using sub wigdets configuration.</p>\n\n          <p>\n            This is actually a template widget type whose template uses a\n            &lt;nxu:inputList /&gt; tag in edit or create mode, and a table\n            iterating over items in other modes.\n          </p>\n\n        </description>\n\n        <categories>\n\n          <category>document</category>\n\n          <category>studio</category>\n\n        </categories>\n\n        <supportedModes>\n\n          <mode>edit</mode>\n\n          <mode>view</mode>\n\n        </supportedModes>\n\n        <acceptingSubWidgets>true</acceptingSubWidgets>\n\n        <fields>\n\n          <list>true</list>\n\n          <complex>false</complex>\n\n          <supportedTypes>\n\n            <type>blob</type>\n\n          </supportedTypes>\n\n          <defaultTypes>\n\n            <type>blob</type>\n\n          </defaultTypes>\n\n        </fields>\n\n        <properties>\n\n          <layouts mode=\"edit\">\n\n            <layout name=\"list_widget_type_properties_edit\">\n\n              <rows>\n\n                <row>\n\n                  <widget>required</widget>\n\n                </row>\n\n                <row>\n\n                  <widget>diff</widget>\n\n                </row>\n\n              </rows>\n\n              <widget name=\"required\" type=\"checkbox\">\n\n                <labels>\n\n                  <label mode=\"any\">Required</label>\n\n                </labels>\n\n                <fields>\n\n                  <field>required</field>\n\n                </fields>\n\n              </widget>\n\n              <widget name=\"diff\" type=\"checkbox\">\n\n                <labels>\n\n                  <label mode=\"any\">Diff</label>\n\n                </labels>\n\n                <fields>\n\n                  <field>diff</field>\n\n                </fields>\n\n              </widget>\n\n            </layout>\n\n          </layouts>\n\n        </properties>\n\n      </configuration>\n\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n\n      <property name=\"template\">/widgets/files_list_widget_template.xhtml\n      </property>\n\n    </widgetType>\n\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ec.notification.service.NotificationService--templates",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/studio.extensions.easyshare/Contributions/studio.extensions.easyshare--templates",
              "id": "studio.extensions.easyshare--templates",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ec.notification.service.NotificationService",
                "name": "org.nuxeo.ecm.platform.ec.notification.service.NotificationService",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"templates\" target=\"org.nuxeo.ecm.platform.ec.notification.service.NotificationService\">\n    <template name=\"easyShareDownload\" src=\"templates/easyShareDownload.ftl\"/>\n    <template name=\"easyShareExpired\" src=\"templates/easyShareExpired.ftl\"/>\n    <template name=\"easyShareDownloadSubject\" src=\"templates/easyShareDownloadSubject.ftl\"/>\n    <template name=\"easyShareExpiredSubject\" src=\"templates/easyShareExpiredSubject.ftl\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--filters",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/studio.extensions.easyshare/Contributions/studio.extensions.easyshare--filters",
              "id": "studio.extensions.easyshare--filters",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"filters\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n    <filter append=\"true\" id=\"create\">\n      <rule grant=\"true\">\n        <permission>AddChildren</permission>\n        <type>EasyShareFolder</type>\n        <condition>!document.isImmutable()</condition>\n        <condition>#{typeManager.getAllowedSubTypes(document.getType(), document).size() &gt; 0}</condition>\n      </rule>\n    </filter>\n    <filter id=\"denyForEasyShareFolder\">\n      <rule grant=\"false\">\n        <type>EasyShareFolder</type>\n      </rule>\n    </filter>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--layouts",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/studio.extensions.easyshare/Contributions/studio.extensions.easyshare--layouts",
              "id": "studio.extensions.easyshare--layouts",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"layouts\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n    <layout name=\"layout@EasyShareFolder-edit\">\n      <templates>\n        <template mode=\"any\">/layouts/easyshare_layout_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>title</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>description</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>expired</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>hasNotification</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>contactEmail</widget>\n        </row>\n      </rows>\n      <widget name=\"title\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.dublincore.title</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:title</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n          <property name=\"required\">true</property>\n        </properties>\n      </widget>\n      <widget name=\"description\" type=\"textarea\">\n        <labels>\n          <label mode=\"any\">label.dublincore.description</label>\n        </labels>\n        <helpLabels>\n          <label mode=\"any\">label.eshare.description.help</label>\n        </helpLabels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:description</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"expired\" type=\"datetime\">\n        <labels>\n          <label mode=\"any\">label.dublincore.expirationDate</label>\n        </labels>\n        <helpLabels>\n          <label mode=\"any\">label.eshare.expirationDate.help</label>\n        </helpLabels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:expired</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"required\">true</property>\n        </properties>\n      </widget>\n      <widget name=\"hasNotification\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">label.eshare.hasNotification</label>\n        </labels>\n        <helpLabels>\n          <label mode=\"any\">label.eshare.hasNotification.help</label>\n        </helpLabels>\n        <translated>true</translated>\n        <fields>\n          <field>eshare:hasNotification</field>\n        </fields>\n      </widget>\n      <widget name=\"contactEmail\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.eshare.contactEmail</label>\n        </labels>\n        <helpLabels>\n          <label mode=\"any\">label.eshare.contactEmail.help</label>\n        </helpLabels>\n        <translated>true</translated>\n        <fields>\n          <field>eshare:contactEmail</field>\n        </fields>\n        <properties widgetMode=\"any\">\n          <property name=\"defaultValue\">\n            #{currentUser.getEmail()}\n          </property>\n        </properties>\n      </widget>\n    </layout>\n    <layout name=\"layout@EasyShareFolder-view\">\n      <templates>\n        <template mode=\"any\">/layouts/easyshare_layout_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>title_and_permlink</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>description</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>expired</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>hasNotification</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>contactEmail</widget>\n        </row>\n      </rows>\n      <widget name=\"title_and_permlink\" type=\"title_and_permlink\">\n        <labels>\n          <label mode=\"any\">label.eshare.title.permlink</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field/>\n          <field>uid:major_version</field>\n          <field>uid:minor_version</field>\n        </fields>\n      </widget>\n      <widget name=\"description\" type=\"textarea\">\n        <labels>\n          <label mode=\"any\">label.dublincore.description</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:description</field>\n        </fields>\n      </widget>\n      <widget name=\"expired\" type=\"datetime\">\n        <labels>\n          <label mode=\"any\">label.dublincore.expirationDate</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:expired</field>\n        </fields>\n      </widget>\n      <widget name=\"hasNotfication\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">label.eshare.hasNotfication</label>\n        </labels>\n        <helpLabels>\n          <label mode=\"any\">label.eshare.hasNotification.help</label>\n        </helpLabels>\n        <translated>true</translated>\n        <fields>\n          <field>eshare:hasNotfication</field>\n        </fields>\n      </widget>\n      <widget name=\"contactEmail\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.eshare.contactEmail</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>eshare:contactEmail</field>\n        </fields>\n      </widget>\n    </layout>\n    <layout name=\"layout@EasyShareFolder-header\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_div_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">3</property>\n          </properties>\n          <widget>header_title_and_permlink</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">3</property>\n          </properties>\n          <widget>collection_header_description</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n            <property name=\"nxl_colspan_1\">1</property>\n            <property name=\"nxl_colspan_2\">1</property>\n          </properties>\n          <widget>creator</widget>\n          <widget>expired</widget>\n          <widget>contactEmail</widget>\n        </row>\n      </rows>\n      <widget name=\"collection_header_description\" type=\"textarea\">\n        <fields>\n          <field>dc:description</field>\n        </fields>\n        <labels>\n          <label mode=\"any\"/>\n        </labels>\n        <properties mode=\"any\">\n          <property name=\"styleClass\">\n            currentDocumentDescription quote\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"creator\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.dublincore.creator</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:creator</field>\n        </fields>\n        <properties widgetMode=\"view\">\n          <property name=\"title\">Creator</property>\n          <property name=\"styleClass\">detail user headerCreator</property>\n        </properties>\n      </widget>\n      <widget name=\"expired\" type=\"datetime\">\n        <labels>\n          <label mode=\"any\">label.dublincore.expirationDate</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:expired</field>\n        </fields>\n        <properties widgetMode=\"view\">\n          <property name=\"title\">Expiration Date</property>\n          <property name=\"styleClass\">tag label label-light headerExpiration</property>\n        </properties>\n      </widget>\n      <widget name=\"contactEmail\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.eshare.contactEmail</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>eshare:contactEmail</field>\n        </fields>\n        <properties widgetMode=\"view\">\n          <property name=\"title\">Creator's Email</property>\n          <property name=\"styleClass\">detail tag headerEmail</property>\n        </properties>\n      </widget>\n    </layout>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.versioning.VersioningService--versioningRules",
              "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/studio.extensions.easyshare/Contributions/studio.extensions.easyshare--versioningRules",
              "id": "studio.extensions.easyshare--versioningRules",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.versioning.VersioningService",
                "name": "org.nuxeo.ecm.core.versioning.VersioningService",
                "type": "service"
              },
              "version": "8.10",
              "xml": "<extension point=\"versioningRules\" target=\"org.nuxeo.ecm.core.versioning.VersioningService\">\n    <versioningRule typeName=\"EasyShareFolder\">\n      <initialState major=\"0\" minor=\"0\"/>\n      <options lifeCycleState=\"*\">\n        <none default=\"true\"/>\n        <minor/>\n        <major/>\n      </options>\n    </versioningRule>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare/studio.extensions.easyshare",
          "name": "studio.extensions.easyshare",
          "requirements": [],
          "services": [],
          "version": "8.10",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<component name=\"studio.extensions.easyshare\" version=\"1.0.0\">\n  <require>org.nuxeo.runtime.started</require>\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"schema\">\n    <schema name=\"easysharefolder\" prefix=\"eshare\" src=\"data/schemas/easysharefolder.xsd\"/>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"doctype\">\n    <doctype name=\"EasyShareFolder\" extends=\"Folder\">\n      <facet name=\"Collection\"/>\n      <facet name=\"NotCollectionMember\"/>\n      <schema name=\"dublincore\"/>\n      <schema name=\"common\"/>\n      <schema name=\"easysharefolder\"/>\n      <schema name=\"uid\"/>\n    </doctype>\n    <doctype name=\"Folder\" append=\"true\">\n      <subtypes>\n        <type>EasyShareFolder</type>\n      </subtypes>\n    </doctype>\n    <doctype name=\"Workspace\" append=\"true\">\n      <subtypes>\n        <type>EasyShareFolder</type>\n      </subtypes>\n    </doctype>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\" point=\"types\">\n    <types>\n      <type name=\"EasyShareFolder\">default</type>\n    </types>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.platform.types.TypeService\" point=\"types\">\n    <type id=\"EasyShareFolder\">\n      <label>EasyShareFolder</label>\n      <category>Collaborative</category>\n      <icon>/img/easyshare.png</icon>\n      <bigIcon>/img/easyshare_100.png</bigIcon>\n      <description>EasyShareFolder.description</description>\n      <default-view>view_documents</default-view>\n      <layouts mode=\"create\">\n        <layout>layout@EasyShareFolder-edit</layout>\n      </layouts>\n      <layouts mode=\"edit\">\n        <layout>layout@EasyShareFolder-edit</layout>\n      </layouts>\n      <layouts mode=\"view\">\n        <layout>layout@EasyShareFolder-view</layout>\n      </layouts>\n      <layouts mode=\"header\">\n        <layout>layout@EasyShareFolder-header</layout>\n      </layouts>\n      <contentViews category=\"content\">\n        <contentView showInExportView=\"false\">document_content</contentView>\n      </contentViews>\n      <contentViews category=\"trash_content\">\n        <contentView showInExportView=\"false\">document_trash_content</contentView>\n      </contentViews>\n    </type>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\" point=\"actions\">\n    <action id=\"TAB_CONTENT\">\n      <filter-id>denyForEasyShareFolder</filter-id>\n    </action>\n    <action id=\"TAB_VIEW\">\n      <filter-id>denyForEasyShareFolder</filter-id>\n    </action>\n    <action id=\"TAB_RELATIONS\">\n      <filter-id>denyForEasyShareFolder</filter-id>\n    </action>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\" point=\"layouts\">\n    <layout name=\"layout@EasyShareFolder-edit\">\n      <templates>\n        <template mode=\"any\">/layouts/easyshare_layout_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>title</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>description</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>expired</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>hasNotification</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>contactEmail</widget>\n        </row>\n      </rows>\n      <widget name=\"title\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.dublincore.title</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:title</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n          <property name=\"required\">true</property>\n        </properties>\n      </widget>\n      <widget name=\"description\" type=\"textarea\">\n        <labels>\n          <label mode=\"any\">label.dublincore.description</label>\n        </labels>\n        <helpLabels>\n          <label mode=\"any\">label.eshare.description.help</label>\n        </helpLabels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:description</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"expired\" type=\"datetime\">\n        <labels>\n          <label mode=\"any\">label.dublincore.expirationDate</label>\n        </labels>\n        <helpLabels>\n          <label mode=\"any\">label.eshare.expirationDate.help</label>\n        </helpLabels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:expired</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"required\">true</property>\n        </properties>\n      </widget>\n      <widget name=\"hasNotification\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">label.eshare.hasNotification</label>\n        </labels>\n        <helpLabels>\n          <label mode=\"any\">label.eshare.hasNotification.help</label>\n        </helpLabels>\n        <translated>true</translated>\n        <fields>\n          <field>eshare:hasNotification</field>\n        </fields>\n      </widget>\n      <widget name=\"contactEmail\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.eshare.contactEmail</label>\n        </labels>\n        <helpLabels>\n          <label mode=\"any\">label.eshare.contactEmail.help</label>\n        </helpLabels>\n        <translated>true</translated>\n        <fields>\n          <field>eshare:contactEmail</field>\n        </fields>\n        <properties widgetMode=\"any\">\n          <property name=\"defaultValue\">\n            #{currentUser.getEmail()}\n          </property>\n        </properties>\n      </widget>\n    </layout>\n    <layout name=\"layout@EasyShareFolder-view\">\n      <templates>\n        <template mode=\"any\">/layouts/easyshare_layout_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>title_and_permlink</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>description</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>expired</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>hasNotification</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n          </properties>\n          <widget>contactEmail</widget>\n        </row>\n      </rows>\n      <widget name=\"title_and_permlink\" type=\"title_and_permlink\">\n        <labels>\n          <label mode=\"any\">label.eshare.title.permlink</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field></field>\n          <field>uid:major_version</field>\n          <field>uid:minor_version</field>\n        </fields>\n      </widget>\n      <widget name=\"description\" type=\"textarea\">\n        <labels>\n          <label mode=\"any\">label.dublincore.description</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:description</field>\n        </fields>\n      </widget>\n      <widget name=\"expired\" type=\"datetime\">\n        <labels>\n          <label mode=\"any\">label.dublincore.expirationDate</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:expired</field>\n        </fields>\n      </widget>\n      <widget name=\"hasNotfication\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">label.eshare.hasNotfication</label>\n        </labels>\n        <helpLabels>\n          <label mode=\"any\">label.eshare.hasNotification.help</label>\n        </helpLabels>\n        <translated>true</translated>\n        <fields>\n          <field>eshare:hasNotfication</field>\n        </fields>\n      </widget>\n      <widget name=\"contactEmail\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.eshare.contactEmail</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>eshare:contactEmail</field>\n        </fields>\n      </widget>\n    </layout>\n    <layout name=\"layout@EasyShareFolder-header\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_div_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">3</property>\n          </properties>\n          <widget>header_title_and_permlink</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">3</property>\n          </properties>\n          <widget>collection_header_description</widget>\n        </row>\n        <row>\n          <properties mode=\"any\">\n            <property name=\"nxl_colspan_0\">1</property>\n            <property name=\"nxl_colspan_1\">1</property>\n            <property name=\"nxl_colspan_2\">1</property>\n          </properties>\n          <widget>creator</widget>\n          <widget>expired</widget>\n          <widget>contactEmail</widget>\n        </row>\n      </rows>\n      <widget name=\"collection_header_description\" type=\"textarea\">\n        <fields>\n          <field>dc:description</field>\n        </fields>\n        <labels>\n          <label mode=\"any\"></label>\n        </labels>\n        <properties mode=\"any\">\n          <property name=\"styleClass\">\n            currentDocumentDescription quote\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"creator\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.dublincore.creator</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:creator</field>\n        </fields>\n        <properties widgetMode=\"view\">\n          <property name=\"title\">Creator</property>\n          <property name=\"styleClass\">detail user headerCreator</property>\n        </properties>\n      </widget>\n      <widget name=\"expired\" type=\"datetime\">\n        <labels>\n          <label mode=\"any\">label.dublincore.expirationDate</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>dc:expired</field>\n        </fields>\n        <properties widgetMode=\"view\">\n          <property name=\"title\">Expiration Date</property>\n          <property name=\"styleClass\">tag label label-light headerExpiration</property>\n        </properties>\n      </widget>\n      <widget name=\"contactEmail\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.eshare.contactEmail</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>eshare:contactEmail</field>\n        </fields>\n        <properties widgetMode=\"view\">\n          <property name=\"title\">Creator's Email</property>\n          <property name=\"styleClass\">detail tag headerEmail</property>\n        </properties>\n      </widget>\n    </layout>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.core.versioning.VersioningService\" point=\"versioningRules\">\n    <versioningRule typeName=\"EasyShareFolder\">\n      <initialState major=\"0\" minor=\"0\"/>\n      <options lifeCycleState=\"*\">\n        <none default=\"true\"/>\n        <minor/>\n        <major/>\n      </options>\n    </versioningRule>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.platform.ec.notification.service.NotificationService\" point=\"notifications\">\n    <notification name=\"easyShareDownload\" channel=\"email\"\n                  enabled=\"true\" availableIn=\"Workspace\" autoSubscribed=\"true\"\n                  template=\"easyShareDownload\" subject=\"EasyShare download notification\"\n                  subjectTemplate=\"easyShareDownloadSubject\">\n      <event name=\"easyShareDownload\"/>\n    </notification>\n    <notification name=\"easyShareExpired\" channel=\"email\"\n                  enabled=\"true\" availableIn=\"Workspace\" autoSubscribed=\"true\"\n                  template=\"easyShareExpired\"\n                  subject=\"EasyShare expired notification\"\n                  subjectTemplate=\"easyShareExpiredSubject\">\n      <event name=\"easyShareExpired\"/>\n    </notification>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.platform.ec.notification.service.NotificationService\" point=\"templates\">\n    <template name=\"easyShareDownload\" src=\"templates/easyShareDownload.ftl\"/>\n    <template name=\"easyShareExpired\" src=\"templates/easyShareExpired.ftl\"/>\n    <template name=\"easyShareDownloadSubject\" src=\"templates/easyShareDownloadSubject.ftl\"/>\n    <template name=\"easyShareExpiredSubject\" src=\"templates/easyShareExpiredSubject.ftl\"/>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\" point=\"chains\">\n    <chain id=\"addToAShareDocument\">\n      <operation id=\"Seam.GetCurrentDocument\"/>\n      <operation id=\"Context.SetInputAsVar\">\n        <param type=\"string\" name=\"name\">shareDocument</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param type=\"string\" name=\"name\">shareDocumentPath</param>\n        <param type=\"object\" name=\"value\">expr:Document.path</param>\n      </operation>\n      <operation id=\"Seam.FetchFromWorklist\"/>\n      <operation id=\"CreateProxyLive\">\n        <param type=\"string\" name=\"Destination Path\">expr:shareDocumentPath</param>\n      </operation>\n      <operation id=\"Context.RestoreDocumentInput\">\n        <param type=\"string\" name=\"name\">shareDocument</param>\n      </operation>\n      <operation id=\"Audit.Log\">\n        <param type=\"string\" name=\"event\">Documents added to the share</param>\n        <param type=\"string\" name=\"category\">EasyShareFolderCategory</param>\n        <param type=\"string\" name=\"comment\">expr:Some documents were added to the share folder @{Document[\"dc:title\"]}</param>\n      </operation>\n      <operation id=\"Seam.Refresh\"/>\n      <operation id=\"Seam.AddInfoMessage\">\n        <param type=\"string\" name=\"message\">Added</param>\n      </operation>\n    </chain>\n    <chain id=\"navToParent\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Document.GetParent\"/>\n      <operation id=\"Seam.NavigateTo\"/>\n    </chain>\n  </extension>\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\" point=\"filters\">\n    <filter id=\"create\" append=\"true\">\n      <rule grant=\"true\">\n        <permission>AddChildren</permission>\n        <type>EasyShareFolder</type>\n        <condition>!document.isImmutable()</condition>\n        <condition>#{typeManager.getAllowedSubTypes(document.getType(), document).size() &gt; 0}</condition>\n      </rule>\n    </filter>\n    <filter id=\"denyForEasyShareFolder\">\n      <rule grant=\"false\">\n        <type>EasyShareFolder</type>\n      </rule>\n    </filter>\n\n  </extension>\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\" point=\"widgettypes\">\n\n\n    <documentation>Widget types declared in studio</documentation>\n\n\n    <widgetType name=\"studio_header\">\n\n      <configuration>\n\n        <title>Header</title>\n\n        <description>\n          The header widget just displays the widget label.\n        </description>\n\n        <supportedModes>\n\n          <mode>edit</mode>\n\n          <mode>view</mode>\n\n        </supportedModes>\n\n        <fields>\n\n          <list>false</list>\n\n          <complex>false</complex>\n\n          <supportedTypes/>\n\n          <defaultTypes/>\n\n        </fields>\n\n        <handlingLabels>true</handlingLabels>\n\n        <categories>\n\n          <category>document</category>\n\n          <category>studio</category>\n\n        </categories>\n\n        <properties>\n\n          <layouts mode=\"any\">\n\n            <layout name=\"studio_header_widget_type_properties_any\">\n\n              <rows>\n\n                <row>\n\n                  <widget>styleClass</widget>\n\n                </row>\n\n                <row>\n\n                  <widget>style</widget>\n\n                </row>\n\n              </rows>\n\n              <widget name=\"styleClass\" type=\"text\">\n\n                <labels>\n\n                  <label mode=\"any\">Style class</label>\n\n                </labels>\n\n                <fields>\n\n                  <field>styleClass</field>\n\n                </fields>\n\n              </widget>\n\n              <widget name=\"style\" type=\"text\">\n\n                <labels>\n\n                  <label mode=\"any\">Style</label>\n\n                </labels>\n\n                <fields>\n\n                  <field>style</field>\n\n                </fields>\n\n              </widget>\n\n            </layout>\n\n          </layouts>\n\n        </properties>\n\n      </configuration>\n\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n\n      <property name=\"template\">\n        /widgets/studio_header_widget.xhtml\n      </property>\n\n    </widgetType>\n\n\n    <widgetType name=\"filesList\">\n\n      <configuration>\n\n        <title>Files</title>\n\n        <description>\n\n          <p>\n            The Files displays an editable list of files, using javascript to\n            keep the uploaded file path when adding several files in a row.\n          </p>\n\n          <p>Items are defined using sub wigdets configuration.</p>\n\n          <p>\n            This is actually a template widget type whose template uses a\n            &lt;nxu:inputList /&gt; tag in edit or create mode, and a table\n            iterating over items in other modes.\n          </p>\n\n        </description>\n\n        <categories>\n\n          <category>document</category>\n\n          <category>studio</category>\n\n        </categories>\n\n        <supportedModes>\n\n          <mode>edit</mode>\n\n          <mode>view</mode>\n\n        </supportedModes>\n\n        <acceptingSubWidgets>true</acceptingSubWidgets>\n\n        <fields>\n\n          <list>true</list>\n\n          <complex>false</complex>\n\n          <supportedTypes>\n\n            <type>blob</type>\n\n          </supportedTypes>\n\n          <defaultTypes>\n\n            <type>blob</type>\n\n          </defaultTypes>\n\n        </fields>\n\n        <properties>\n\n          <layouts mode=\"edit\">\n\n            <layout name=\"list_widget_type_properties_edit\">\n\n              <rows>\n\n                <row>\n\n                  <widget>required</widget>\n\n                </row>\n\n                <row>\n\n                  <widget>diff</widget>\n\n                </row>\n\n              </rows>\n\n              <widget name=\"required\" type=\"checkbox\">\n\n                <labels>\n\n                  <label mode=\"any\">Required</label>\n\n                </labels>\n\n                <fields>\n\n                  <field>required</field>\n\n                </fields>\n\n              </widget>\n\n              <widget name=\"diff\" type=\"checkbox\">\n\n                <labels>\n\n                  <label mode=\"any\">Diff</label>\n\n                </labels>\n\n                <fields>\n\n                  <field>diff</field>\n\n                </fields>\n\n              </widget>\n\n            </layout>\n\n          </layouts>\n\n        </properties>\n\n      </configuration>\n\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n\n      <property name=\"template\">/widgets/files_list_widget_template.xhtml\n      </property>\n\n    </widgetType>\n\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/extensions.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-easyshare-8.10.jar",
      "groupId": "org.nuxeo.ecm",
      "hierarchyPath": "/grp:org.nuxeo.ecm/easyshare",
      "id": "easyshare",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_77\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 1.0.0\r\nNuxeo-WebModule: org.nuxeo.ecm.webengine.app.WebEngineModule;name=easy\r\n share;package=org/nuxeo/easyshare\r\nBundle-Vendor: Nuxeo\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Name: easyshare\r\nNuxeo-Component: OSGI-INF/extensions.xml, OSGI-INF/easyshare-contrib.xml\r\nBundle-SymbolicName: easyshare\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.7\r\n\r\n",
      "packages": [],
      "requirements": [],
      "version": "8.10"
    }
  ],
  "creationDate": 1664793159691,
  "key": "Nuxeo Platform LTS 2016-8.10",
  "name": "Nuxeo Platform LTS 2016",
  "operations": [],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1481518800000,
  "version": "8.10"
}